package common

/* @Author: simon  */
/* @Description: 统一返回信息  */
/* @File: return_json   */
/* @Version: 1.0.0  */
/* @Date: 2023/09/05 17:18   */
/* @Software : GoLand   */

import (
	beego "github.com/beego/beego/v2/server/web"
)

type ReturnController struct {
	beego.Controller
}

type ReturnMsg struct {
	Code int
	Msg  string
	Data interface{}
}

// SuccessJson
// @Description: 代码实现成功时调用
// @receiver r
// @param msg 自定义成功消息
// @param data 自定义成功返回内容
func (r *ReturnController) SuccessJson(msg string, data interface{}) {

	if msg == "" {
		msg = "success"
	}
	res := ReturnMsg{
		200, msg, data,
	}
	r.Data["json"] = res
	err := r.ServeJSON()
	if err != nil {
		return
	}
	r.StopRun()
}

// ErrorJson
// @Description: 出现异常时调用
// @receiver r
// @param code 自定义异常编码
// @param msg 自定义异常消息
// @param data 自定义异常返回信息
func (r *ReturnController) ErrorJson(code int, msg string, data interface{}) {
	res := ReturnMsg{
		code, msg, data,
	}
	r.Data["json"] = res
	err := r.ServeJSON()
	if err != nil {
		return
	}
	r.StopRun()
}
